Applications and web services that wish to interact with other applications on other platforms have few choices to communicate easily. Issues exist when attempting to connect devices and applications in an open and standards-based manner, rather than with use of proprietary technologies. Another important consideration is the structure and syntax for how applications will communicate with each other once they have been connected.
Developers are increasingly using many development models based on the Internet; for example using HTML5, JavaScript Object Notation (JSON), and Cascading Style Sheets (CSS)-based technologies in local applications, web pages, and web applications (“web apps”). In addition to communications among local applications, there is a need for support of web apps and services on various types of classic and lightweight devices, for example, on consumer electronics.
Often, connection and communication between applications and platforms is handled by creating a proprietary pipe. This means that developers have to create custom protocols and syntax for communication. Although this may be sufficient for a single developer wishing to communicate among his or her own applications, it does not support a broader model for multiple heterogeneous applications to connect and collaborate, nor does it support deployment on lightweight devices. Some approaches such as Digital Living Network Alliance (DLNA) communication technologies provide a standards-based means of connecting platforms and identifying some types of media, but do not provide a general purpose mechanism for a broader set of applications to communicate and operate.